broadway: Call device vfunc to get device state
authorAlexander Larsson <alexl@redhat.com>
Fri, 11 Mar 2011 07:26:37 +0000 (08:26 +0100)
committerAlexander Larsson <alexl@redhat.com>
Fri, 11 Mar 2011 07:26:37 +0000 (08:26 +0100)
We want only one place where we get device state.

gdk/broadway/gdkdevice-broadway.c
gdk/broadway/gdkwindow-broadway.c

index a3dcab0babe092b015f2e02d49c1b4b627c1f2ee..0d0aaa9eccd5641e8595a2e793e5a0836052fb73 100644 (file)
@@ -152,6 +152,16 @@ gdk_broadway_device_query_state (GdkDevice        *device,
                                 gint             *win_y,
                                 GdkModifierType  *mask)
 {
+  if (root_x)
+    *root_x = 0;
+  if (root_y)
+    *root_y = 0;
+  if (win_x)
+    *win_x = 0;
+  if (win_y)
+    *win_y = 0;
+  if (mask)
+    *mask = 0;
   return FALSE;
 }
 
index 3e23db757268ac992467c214e3e725bddad3d0ed..6dc3f6842cfe074fed48ef5f2aa10f0adb60abe9 100644 (file)
@@ -873,10 +873,18 @@ gdk_window_broadway_get_device_state (GdkWindow       *window,
                                      gint            *y,
                                      GdkModifierType *mask)
 {
-  *x = 0;
-  *y = 0;
-  *mask = 0;
-  return FALSE;
+  GdkWindow *child;
+
+  g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), FALSE);
+
+  if (GDK_WINDOW_DESTROYED (window))
+    return FALSE;
+
+  GDK_DEVICE_GET_CLASS (device)->query_state (device, window,
+                                              NULL, &child,
+                                              NULL, NULL,
+                                              x, y, mask);
+  return child != NULL;
 }
 
 static GdkEventMask